新サービス『AWS CloudTrail』のユーザーガイドを読んでみた / CloudTrailアクションへのアクセス制御
- Amazon Web Services ブログ: 【AWS発表】 AWS CloudTrail - AWS APIコールの記録を保存
- What is AWS CloudTrail - AWS CloudTrail
シリーズ第3弾は『CloudTrailアクションへのアクセス制御』です。
CloudTrailアクションへのアクセス制御
CloudTrailアクションに対する権限付与
AWS CloudTrailは、AWS IAMと統合しており、IAMによって、CloudTrailに関する様々なアクセス管理を制御する事が出来ます。これまでの既存サービス同様、グループやユーザーにそれぞれ利用可否の権限を割当て、適切な管理が行えるようになります。適切な権限を持つIAM管理者グループを作成し、管理タスクを実行する組織内の人々(あなたを含む)に対するIAMユーザーを作成しましょう。この辺り、IAMの適切な管理方法の詳細については、IAM Best Practicesを参考にしてみてください。
このセクションに於ける一般的なアプローチとしては、適切な権限を持ち、個別のIAMユーザーをグループに追加するためのIAMグループを作成する事になるでしょうか。CloudTrailアクションへの完全なアクセス権を持つユーザーに対するIAMグループを作成し、Trail(証跡)情報を見ることが出来るが、作成や変更する事は出来ないユーザーに対する個別のグループを作成するような事もあるかもしれません。
CloudTrailアクションに対するIAMグループとユーザーの作成
- 1.IAMコンソールを開きます。( IAM Management Console )
- 2.ダッシュボードから[Create a New Group of Users]をクリック、グループ名を入力し[Continue]をクリック。
- 3.[Permission]ページにて、ポリシーテンプレートでCloudTrailのテンプレートを選択。
- AWS CloudTrail Full Access:このポリシーは、Trail(証跡)に対するCloudTrailアクションとAmazon S3、Amazon SNSのトピックに対する全てのアクセス権をユーザーに提供します。
- AWS CloudTrail Read Only Access:このポリシーは、グループ内のユーザーにTrail(証跡)とバケットを閲覧する許可を与えます。
- 4.ユーザーのページにて、新規グループに既存のIAMユーザを追加。IAMユーザを持っていない場合は、[Create New Users]タブをクリックし、ユーザー名を入力、[Continue]を押下。
- 5.新規ユーザーを作成した場合、ナビゲーションペインで[Users]をクリックして、ユーザー毎に以下の手順を実行します。
- ユーザーが全てのCloudTrailアクションを実行出来る
- Amazon S3バケット内のCloudTrailログファイルを管理出来る
- ユーザーが関連付けられているアカウントでAmazon SNSトピックを管理する事が出来る
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:AddPermission", "sns:CreateTopic", "sns:DeleteTopic", "sns:ListTopics", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*" }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:DeleteBucket", "s3:GetObject", "s3:ListAllMyBuckets", "s3:PutBucketPolicy" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": "cloudtrail:*", "Resource": "*" } ] }
以下例は、CloudTrailで作業する際にフルアクセス(管理者)となるポリシーです。
{ "Statement": [ { "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:DeleteTopic", "sns:ListTopics", "sns:SetTopicAttributes", "sns:AddPermission" ], "Resource": "arn:aws:sns:*" }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:DeleteBucket", "s3:ListAllMyBuckets", "s3:PutBucketPolicy", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": "cloudtrail:*", "Resource": "*" } ]}